package sisgeroupas.dao;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import sisgeroupas.factory.ConnectionBD;
import sisgeroupas.model.ModelCliente;
import sisgeroupas.model.ModelFornecedor;


/**
 *
 * @author root
 */
public class FornecedorDao
{
    private Connection connection;
   /*int id;
   String nome;
   String sexo;
   String dataNascimento;
    */
    public FornecedorDao()
    {
        this.connection = new ConnectionBD().getConnection();
    }
    public void inserir(ModelFornecedor fornecedor)
    {
        String sql = "INSERT INTO fornecedor(razaosocial,nomefantasia,cnpj,telefone,site) VALUES(?,?,?,?,?)";
        try
        {
            PreparedStatement stmt = connection.prepareStatement(sql);
            
            stmt.setString(1,fornecedor.getRazaoSocial()); 
            stmt.setString(2,fornecedor.getNomeFantasia());
            stmt.setString(3,fornecedor.getCnpj()); 
            stmt.setString(4,fornecedor.getTelefone());
            stmt.setString(5,fornecedor.getSite());
                                  
            stmt.execute();
            stmt.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u.getMessage());  
            throw new RuntimeException(u);
            
        }
    }
        
    
    
    
  
    
    public void apagar(ModelFornecedor fornecedor)
     {
        String sql = "DELETE FROM fornecedor WHERE id = ?";
        //JOptionPane.showMessageDialog(null,"Executou sql");
        try
        {
            //JOptionPane.showMessageDialog(null,"Entrou no try");
            PreparedStatement stmt = connection.prepareStatement(sql);
            //JOptionPane.showMessageDialog(null,"Executou sql");
            
            stmt.setInt(1, fornecedor.getId());
                                 
            stmt.execute();
            stmt.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u);  
            throw new RuntimeException(u);
        }
    }
    
     public ArrayList<ModelFornecedor> pesquisar(ModelFornecedor fornecedor)
     {
         //String sql = new String();
         ArrayList<ModelFornecedor> resultados = new ArrayList<ModelFornecedor>();
         //JOptionPane.showMessageDialog(null,cliente);
         //sql= "SELECT * FROM pessoa WHERE  nome  like ?";
         
         

        try
        {
            //JOptionPane.showMessageDialog(null,"Entrou no try");
            PreparedStatement stmt = this.connection.prepareStatement("SELECT * FROM fornecedor where nomefantasia like "+"'%" + fornecedor.getNomeFantasia() + "%'");
            //stmt.setString(1,);
            
            
            //Aqui coloca apenas uma variavel que usou para pesquisar ou 2 se for o caso
            //stmt.setString(1, cadastro.getNome());
            
            ResultSet rs= stmt.executeQuery();;
            
            while (rs.next()) {  
            ModelFornecedor temp = new ModelFornecedor();  
            // pega todos os atributos da cliente
            temp.setId(rs.getInt("id"));
            temp.setRazaoSocial(rs.getString("razaosocial"));
            temp.setNomeFantasia(rs.getString("nomefantasia"));
            temp.setCnpj(rs.getString("cnpj")); 
            temp.setTelefone(rs.getString("telefone"));
            temp.setSite(rs.getString("site"));
            resultados.add(temp);
            //JOptionPane.showMessageDialog(null, temp.getNome());
        }
                                 
            stmt.execute();
            stmt.close();
            rs.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u);  
            throw new RuntimeException(u.getMessage());
        }
        return resultados;
    }
     public void atualizar(ModelFornecedor fornecedor)
    {
        
        String sql = "UPDATE  fornecedor set razaosocial=?, nomefantasia=?, cnpj=?,telefone=?,site=? where id=? ";
        try
        {
            PreparedStatement stmt = connection.prepareStatement(sql);
            
            
            
            stmt.setString(1,fornecedor.getRazaoSocial()); 
            stmt.setString(2,fornecedor.getNomeFantasia());
            stmt.setString(3,fornecedor.getCnpj()); 
            stmt.setString(4,fornecedor.getTelefone());
            stmt.setString(5,fornecedor.getSite());
            stmt.setInt(6,fornecedor.getId());
            
            stmt.execute();
            stmt.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u);  
            throw new RuntimeException(u);
            //JOptionPane.showMessageDialog(null, "Erro SQL:" + u);
        }
    }
}